//! Rust 中最强大的元编程工具非编译器插件莫属，但可惜的是，编译器插件目前还不稳定。
//! 在Nightly版本的Rust之下，配合#![feature(plugin_registrar)]特性，可以实现编译器插件。
//! 编译器插件由内置的librustc_plugin包提供，该包对外公开了八种方法供开发者编写不
//! 同功能的编译器插件，具体如下:
//! • register_syntax_extension，可以通过它实现任意语法扩展 。
//! • register_custom_derive，是对register_syntax_extension的包装，专门用于实现自定义派生属性。
//! • register_macro，同样是对 register_syntax_extension 的包装，用于实现 Bang 宏。
//! • register_attribute， 用于实现编译器属性。
//! 其他四种与 lint属性和l llvm相关。